package com.z.redis.channel;

import io.netty.channel.Channel;
import io.netty.channel.EventLoopGroup;

/**
 * @author zxb
 * 抽象了Netty的线程组配置和通道类型，便于灵活扩展不同的网络模型（NIO、Epoll、KQueue）
 * 通过<C extends Channel>确保类型安全
 * @param <C>
 */
public interface LocalChannelOption<C extends Channel> {
    /**
     * 通常用于处理连接的接收（如服务端的“主线程组”）
     * @return 返回获取tcp线程
     */
    EventLoopGroup boss();

    /**
     * 通常用于处理连接的I/O操作（读写）
     * @return 返回处理tcp线程
     */
    EventLoopGroup workers();

    /**
     * 表示具体的Channel实现类
     * @return 返回管道类型
     */
    Class <? extends C> getChannelClass();
}
